const cloud = require("@cloudbase/node-sdk");

const app = cloud.init({
    env: cloud.SYMBOL_CURRENT_ENV,
});

var db = app.database();
const _ = db.command
const ZXUser = db.collection('ZX-User')

// 获取openId云函数入口函数
exports.main = async (event, context) => {

    var params = {}
    api = event.api

    gameCode = event.data.gameCode
    gameName = event.data.gameName
    qq = event.data.qq
    gameId = event.data.gameId
    password = event.data.password
    isSecrecy = event.data.isSecrecy

    // 登录
    if(api=='api-login'){
        params.gameCode = gameCode
        // params.password = password
        params.status = 1

        // 1.验证是否账号和密码是否正确
        const resCode = await ZXUser.where(params).get()
        // return resCode

        // 2.验证状态是否正常
        const resStatus = await ZXUser.where({
            gameCode: gameCode,
            // password: password,
            status: _.neq(1),
        }).get()
        // return resStatus
        if(resStatus.data&&resStatus.data.length>0){
            return {
                type: 'error',
                msg: '登录失败，此账号已被关闭，请联系管理员！'
            }
        }else{
            if(resCode.data&&resCode.data.length>0){
                return resCode.data[0]
            }else{
                return {
                    type: 'error',
                    msg: '登录失败,账号密码错误！'
                }
            }
        }

    }

    // 注册
    if(api=='api-register'){

        if(event.data._id){
            delete event.data._id
        }

        // 1.判断 code是否已存在
        const resCode = await ZXUser.where({gameCode:gameCode}).get()
        if(resCode.data&&resCode.data.length>0){
            return {
                type: 'error',
                msg: '已存在账号！'
            }
        }
        // 2.判断 qq是否已存在
        const resQQ = await ZXUser.where({qq:qq}).get()
        if(resQQ.data&&resQQ.data.length>0){
            return {
                type: 'error',
                msg: '已存在相同QQ号！'
            }
        }
        // 3.判断 gameName是否已存在
        const resName = await ZXUser.where({gameName:gameName}).get()
        if(resName.data&&resName.data.length>0){
            return {
                type: 'error',
                msg: '已存在相同游戏名称！'
            }
        }

        

        params.gameCode = gameCode
        params.gameName = gameName
        params.password = password
        params.isSecrecy = isSecrecy
        params.status = 1
        params.qq = qq
        params.gameId = gameId //默认传入1 东方诛仙

        params.powerInfo = {
            powerMenu: [],
            roleInfo: [], //角色管理 查看和管理权限
            levelInfo: [], //等级，会员等级
            functionInfo: [], //功能,寄售数量限制，收购数量限制
        }

        // return params
        const resAdd = await ZXUser.add(params)

        return resAdd
    }


    
};